package fdupc.entity;

import java.io.*;

/**
 * 接口描述:  实体对象接口
 *
 * @author 王雷
 * @version 1.0.0
 * @date 2022/9/28 0028 下午 5:20
 */
@SuppressWarnings("unchecked")
public interface IEntityClass extends Serializable {


    /**
     * 深拷贝
     *
     * @return 拷贝后的结果
     * @author 王雷 (2018年1月18日 下午7:04:16)
     */
    default  <T> T deepClone() throws IOException, ClassNotFoundException{
        // 将对象写到流里
        ByteArrayOutputStream bo = new ByteArrayOutputStream();
        ObjectOutputStream oo = new ObjectOutputStream(bo);
        oo.writeObject(this);
        // 从流里读出来
        ByteArrayInputStream bi = new ByteArrayInputStream(bo.toByteArray());
        ObjectInputStream oi = new ObjectInputStream(bi);
        return (T) oi.readObject();
    }
}
